// 请求服务器地址
const baseURL = 'http://192.168.1.100:8402';
// 向外暴露一个方法 myRequest
export const myRequest = (options) => {
	//加载loading
	uni.showLoading({
		title: "加载中",
	});
	const token = uni.getStorageSync("token"); // 假设 token 是存储在本地缓存中的
	return new Promise((resolve, reject) => {
		uni.request({
			// 请求头相关配置
			header: {
				Authorization: "Bearer " + token, // 在请求头中添加 token
			},
			// 开发者服务器接口地址（请求服务器地址 + 具体接口名）
			url: baseURL + options.url,
			// 请求方式（若不传，则默认为 GET ）
			method: options.method || "GET",
			// 请求参数（若不传，则默认为 {} ）
			data: options.data || {},
			// 请求成功
			success: (res) => {
				// 处理token过期
				if (res.data.code === 401) {
					// 登录已失效，请重新登录
					uni.showToast({
						title: "登录已失效，请重新登录",
						icon: "error",
						duration: 2000,
					});
					//清空当前保存的token
					uni.setStorageSync("token", "");
					// 强制跳转至登录页
					uni.reLaunch({
						url: "/pages/index/index",
						fail(e) {
							console.error(e);
						},
					});
				} else if (res.data.code == 500) {
					// uni.showToast({
					//   title: 'res.messages',	});

					resolve(res.data);
				} else if (res.data.code !== 200) {
					uni.showToast({
						title: "获取数据失败！",
					});
					reject(new Error("Failed to get data"));
				} else {
					// uni.showToast({
					//   title: 'res.messages',

					// });
					resolve(res.data); // Resolve with data for successful requests
				}
			},
			// 请求失败
			fail: (err) => {
				uni.showToast({
					title: "请求接口失败！",
				});
				reject(err);
			},
			//请求结束之后，执行的回调函数（成功或失败都会执行）
			complete() {
				//隐藏loading
				uni.hideLoading();
			},
		});
	});
};